tags:
- site
- winterbreak
journal-start-date: 2025-01-19
Multiplayer Submarine Game
After my first term of CST, I was itching to make games again during my 3 week winter break.
Right as I got home from my last final exam, I opened Unity and hit "New 3D Project."
Working in a team is often so much easier, especially for coming up with creative ideas and solutions.
My friends and I came up with a strategy to come up with many low-scope game ideas, so that the best one can be developed over this 3 week winter break.
frying pan
All the stressful thinking sessions we did went to waste, since I decided on an entirely different idea and got so attached and excited about it, I had to do it (THIS WAS A MISTAKE. The idea was far too high-scoped).
The original game idea compared to what became of it later on are quite different, so I'll split them up here.
My original idea for the game was a 4 player co-op multiplayer, where you and your friends are all inside a submarine with no windows.
A player can control the submarine, and must navigate it through randomly generated underwater terrain to reach several destinations.
Another player could control a robotic arm (much like the Canadarm2) that could collect rocks, debris, and plants to be brought into the submarine.
The other 2 players would help keep the submarines engine working, by providing it fuel and coolant crafter from the debris and plants brought in by the arm.
The rocks the robotic arm bring into the submarine can be drilled into. They have a chance to have a rare metal inside.
The goal of the game is to navigate the submarine to the POIs (points of interest) and deposit a certain value of rare metals collected from the rocks along the way.
The lose state would be running out of fuel / overheating due to lack of coolant.
This section is meant to be read after the above Original Game Idea section.
As I was developing the original ideas, I found many flaws in it, both technical and gameplay.
One of the biggest ones was the robotic arm. The arm had to be big enough to be maneuverable, but small enough to not interfere with the submarines movement. No matter what I tried, it was either too frustrating for the "pilot" of the submarine to control, or too difficult for the arm's controller to make any meaningful progress, so I decided to scrap the arm idea.
Instead of an arm, players entered a POI through an airlock (after a docking procedure).
Depending on what phase the game was at, players were tasked with different things to do.
You proceed to the next phase by docking at the next POI.
Tried to make the "interior" submarine match the rotation of the "moveable" submarine.
The test was an astounding failure.
After making a robust interaction system that worked very well across all clients, I added a physics-based valve rotation system that was also fully synced across all clients.